package com.dynamicthreadpool.strategy;

import com.dynamicthreadpool.spi.extension.SPI;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;

/**
 * 队列策略接口，用于创建不同类型的阻塞队列
 */
@SPI("ResizeableArrayBlockingQueue")
public interface QueueStrategy {

    /**
     * 创建阻塞队列
     * @param capacity 队列容量
     * @return 阻塞队列实例
     */
    BlockingQueue<Runnable> createQueue(int capacity);

    /**
     * 获取队列类型名称
     * @return 队列类型名称
     */
    String getTypeName();
}
